File: /var/www/html/wpbiancoarte/wp-content/plugins/qode-framework/inc/common/assets/js/dashboard.js
(function ( $ ) {
'use strict';
if ( typeof qodef !== 'object' ) {
window.qodef = {};
}
$( document ).ready(
function () {
qodefTabs.init();
qodefDependency.init();
qodefRepeater.init();
}
);
var qodefTabs = {
init: function () {
this.holder = $( '.qodef-tab-wrapper' );
if ( this.holder.length ) {
this.holder.each(
function () {
qodefTabs.initTabs( $( this ) );
}
);
}
},
initTabs: function ( tabs ) {
tabs.children( '.qodef-tab-item-content' ).each(
function ( index ) {
index = index + 1;
var $that = $( this ),
link = $that.attr( 'id' ),
$navItem = $that.parent().find( '.qodef-tab-item-nav-wrapper li:nth-child(' + index + ') a' ),
navLink = $navItem.attr( 'href' );
link = '#' + link;
if ( link.indexOf( navLink ) > -1 ) {
$navItem.attr( 'href', link );
}
}
);
tabs.addClass( 'qodef--init' ).tabs(
{
activate: function () {
// This peace of code is required in order to re init maps for address field type when it's inside tabs layout
if ( typeof qodef.qodefAddressFields === 'object' ) {
qodef.qodefAddressFields.init( true );
}
}
}
);
}
};
var qodefDependency = {
init: function () {
qodefDependency.initOptions();
qodefDependency.initMenu();
qodefDependency.initWidget();
},
initOptions: function ( ) {
var $dependencyOptions = $( '.qodef-field-content .qodef-field[data-option-name]' );
if ( $dependencyOptions.length ) {
qodefDependency.initFields( $dependencyOptions );
}
},
initMenu: function () {
var $dependencyOptions = $( '#update-nav-menu .qodef-menu-item-field[data-option-name]' );
if ( $dependencyOptions.length ) {
qodefDependency.initFields( $dependencyOptions );
}
},
initWidget: function () {
var $dependencyOptions = $( '#widgets-right .widget-content .qodef-widget-field[data-option-name]' );
if ( $dependencyOptions.length ) {
$dependencyOptions.each(
function () {
var $option = $( this );
qodefDependency.initField( $option );
}
);
}
},
reinitRepeater: function () {
var $dependencyOptions = $( '.qodef-repeater-fields-holder .qodef-field-content .qodef-field[data-option-name]' );
if ( $dependencyOptions.length ) {
$dependencyOptions.each(
function () {
var $thisOption = $( this );
var thisOptionType = $thisOption.data( 'option-type' );
switch (thisOptionType) {
case 'selectbox':
qodefDependency.qodefSelectBoxDependencyRepeater( $thisOption );
break;
case 'radiogroup':
qodefDependency.qodefRadioGroupDependencyRepeater( $thisOption );
break;
}
qodefDependency.initField( $thisOption );
}
);
}
},
reinitWidget: function ( widgetDependencyFields ) {
qodefDependency.initFields( widgetDependencyFields );
},
initFields: function ( fields ) {
fields.each(
function () {
var $thisOption = $( this );
if ( $thisOption.parents( '.qodef-repeater-template' ).length <= 0 ) {
qodefDependency.initField( $thisOption );
}
}
);
},
initField: function ( $thisOption ) {
var thisOptionType = $thisOption.data( 'option-type' );
if ( ! $thisOption.hasClass( 'qodef-dependency-option' ) ) {
$thisOption.addClass( 'qodef-dependency-option' );
switch (thisOptionType) {
case 'selectbox':
qodefDependency.qodefSelectBoxDependency( $thisOption );
break;
case 'radiogroup':
qodefDependency.qodefRadioGroupDependency( $thisOption );
break;
case 'yesno':
qodefDependency.qodefRadioGroupDependency( $thisOption );
break;
}
}
},
qodefSelectBoxDependency: function ( option ) {
option.on(
'change',
function () {
var optionValue = $( this ).val();
qodefDependency.qodefDependencyActionInit(
option,
optionValue
);
}
);
option.trigger( 'change' );
},
qodefSelectBoxDependencyRepeater: function ( option ) {
var repeaterOptionValue = option.val();
qodefDependency.qodefDependencyActionInit(
option,
repeaterOptionValue
);
},
qodefRadioGroupDependency: function ( option ) {
var optionName = option.data( 'option-name' ),
radioItem = option.find( 'input[name=' + optionName + ']' );
radioItem.on(
'change',
function () {
var optionValue = this.value;
qodefDependency.qodefDependencyActionInit(
option,
optionValue
);
}
);
qodefDependency.qodefDependencyActionInit(
option,
option.find( 'input[name=' + option.data( 'option-name' ) + ']:checked' ).val()
);
},
qodefRadioGroupDependencyRepeater: function ( option ) {
var optionName = option.data( 'option-name' ),
radioItem = option.find( 'input[name=' + optionName + ']' ),
repeaterOptionValue = radioItem.value;
qodefDependency.qodefDependencyActionInit(
option,
repeaterOptionValue
);
},
qodefDependencyActionInit: function ( option, optionValue ) {
var dependencyHolder = $( '.qodef-dependency-holder' ),
optionName = option.data( 'option-name' );
if ( dependencyHolder.length && optionName !== undefined && optionName !== '' && optionValue !== undefined ) {
dependencyHolder.each(
function () {
var $thisHolder = $( this ),
showDataItems = $thisHolder.data( 'show' ),
hideDataItems = $thisHolder.data( 'hide' );
if ( showDataItems !== '' && showDataItems !== undefined ) {
if ( qodefDependency.qodefGetNumberOfItems( showDataItems ) > 1 ) {
qodefDependency.qodefMultipleDependencyLogic(
showDataItems,
$thisHolder,
optionName,
optionValue,
true
);
} else {
qodefDependency.qodefSingleDependencyLogic(
showDataItems,
$thisHolder,
optionName,
optionValue,
true
);
}
}
if ( hideDataItems !== '' && hideDataItems !== undefined ) {
if ( qodefDependency.qodefGetNumberOfItems( hideDataItems ) > 1 ) {
qodefDependency.qodefMultipleDependencyLogic(
hideDataItems,
$thisHolder,
optionName,
optionValue,
false
);
} else {
qodefDependency.qodefSingleDependencyLogic(
hideDataItems,
$thisHolder,
optionName,
optionValue,
false
);
}
}
}
);
}
},
qodefGetNumberOfItems: function ( items ) {
var numberOfItems = 0;
for ( var item in items ) {
if ( items.hasOwnProperty( item ) ) {
++numberOfItems;
}
}
return numberOfItems;
},
qodefMultipleDependencyLogic: function ( dataItems, holder, optionName, optionValue, show ) {
var flag = [],
itemVisibility = true;
$.each(
dataItems,
function ( key, value ) {
value = value.split( ',' );
if ( optionName === key ) {
if ( value.indexOf( optionValue ) !== -1 ) {
flag.push( true );
} else {
flag.push( false );
}
} else {
var otherOptionName = $( '.qodef-dependency-option[data-option-name="' + key + '"]' ),
otherOptionType = otherOptionName.data( 'option-type' ),
otherValue = '';
switch (otherOptionType) {
case 'checkbox':
otherValue = otherOptionName.find( 'input[type="hidden"][name="' + key + '"]' ).val();
break;
case 'selectbox':
otherValue = otherOptionName.val();
break;
case 'radiogroup':
otherValue = otherOptionName.find( 'input[name="' + key + '"]' ).val();
break;
}
if ( otherValue.length && value.indexOf( otherValue ) !== -1 ) {
flag.push( true );
} else {
flag.push( false );
}
}
}
);
for ( var f in flag ) {
if ( ! flag[f] ) {
itemVisibility = false;
}
}
if ( show ) {
if ( itemVisibility ) {
holder.fadeIn( 200 );
} else {
holder.fadeOut( 200 );
}
} else {
if ( itemVisibility ) {
holder.fadeOut( 200 );
} else {
holder.fadeIn( 200 );
}
}
},
qodefSingleDependencyLogic: function ( dataItems, holder, optionName, optionValue, show ) {
$.each(
dataItems,
function ( key, value ) {
if ( optionName === key ) {
value = value.split( ',' );
if ( show ) {
if ( value.indexOf( optionValue ) !== -1 ) {
// holder.fadeIn(200);
holder.removeClass( 'qodef-hide-dependency-holder' );
holder.addClass( 'qodef-show-dependency-holder' ); //for search options manipulation
} else {
//holder.fadeOut(200);
holder.addClass( 'qodef-hide-dependency-holder' );
holder.removeClass( 'qodef-show-dependency-holder' ); //for search options manipulation
}
} else {
if ( value.indexOf( optionValue ) !== -1 ) {
//holder.fadeOut(200);
holder.addClass( 'qodef-hide-dependency-holder' );
holder.removeClass( 'qodef-show-dependency-holder' ); //for search options manipulation
} else {
//holder.fadeIn(200);
holder.removeClass( 'qodef-hide-dependency-holder' );
holder.addClass( 'qodef-show-dependency-holder' ); //for search options manipulation
}
}
}
}
);
}
};
qodef.qodefDependency = qodefDependency;
var qodefRepeater = {
init: function () {
qodefRepeater.initRepeater();
qodefRepeater.initRepeaterInner();
},
initRepeater: function () {
var repeaterHolder = $( '.qodef-repeater-wrapper' );
if ( repeaterHolder.length ) {
repeaterHolder.each(
function () {
var $thisHolder = $( this );
qodefRepeater.qodefAddNewRow( $thisHolder );
qodefRepeater.qodefRemoveRow( $thisHolder );
qodefRepeater.qodefInitSortable( $thisHolder );
}
);
}
},
initRepeaterInner: function () {
var repeaterInnerHolder = $( '.qodef-repeater-inner-wrapper' );
if ( repeaterInnerHolder.length ) {
repeaterInnerHolder.each(
function () {
var $thisHolder = $( this );
qodefRepeater.qodefAddNewRowInner( $thisHolder );
qodefRepeater.qodefRemoveRowInner( $thisHolder );
qodefRepeater.qodefInitSortableInner( $thisHolder );
}
);
}
},
qodefGetNumberOfRows: function ( holder ) {
return holder.find( '.qodef-repeater-fields-holder' ).length;
},
qodefInitSortable: function ( holder ) {
if ( holder.find( '.qodef-repeater-wrapper-main.sortable' ).length ) {
$( '.qodef-repeater-wrapper-main.sortable' ).sortable(
{
placeholder: 'qodef-placeholder',
forcePlaceholderSize: true
}
);
}
qodefRepeater.qodefInitSortableInner( holder );
},
qodefInitSortableInner: function ( holder ) {
if ( holder.find( '.qodef-repeater-inner-wrapper-main.sortable' ).length ) {
$( '.qodef-repeater-inner-wrapper-main.sortable' ).sortable(
{
placeholder: 'qodef-placeholder',
forcePlaceholderSize: true
}
);
}
},
qodefAddNewRow: function ( holder ) {
var $addButton = holder.find( '.qodef-repeater-add a' );
var templateName = holder.find( '.qodef-repeater-wrapper-main' ).data( 'template' );
var $repeaterContent = holder.find( '.qodef-repeater-wrapper-main' );
var repeaterTemplate = wp.template( 'qodef-repeater-template-' + templateName );
$addButton.on(
'click',
function ( e ) {
e.preventDefault();
e.stopPropagation();
var $row = $(
repeaterTemplate(
{
rowIndex: qodefRepeater.qodefGetNumberOfRows( holder ) || 0
}
)
);
$repeaterContent.append( $row );
var innerHolder = $row.find( '.qodef-repeater-inner-wrapper' );
qodefRepeater.qodefAddNewRowInner( innerHolder );
qodefRepeater.qodefRemoveRowInner( innerHolder );
qodefRepeater.qodefInitSortable( holder );
qodefDependency.reinitRepeater();
$( document ).trigger(
'qodef_add_new_row_trigger',
$row.find( '.qodef-repeater-fields' )
);
}
);
},
qodefRemoveRow: function ( holder ) {
var repeaterContent = holder.find( '.qodef-repeater-wrapper-main' );
repeaterContent.on(
'click',
'.qodef-clone-remove',
function ( e ) {
e.preventDefault();
e.stopPropagation();
if ( ! window.confirm( 'Are you sure you want to remove this section?' ) ) {
return;
}
var $rowParent = $( this ).parents( '.qodef-repeater-fields-holder' );
$rowParent.remove();
}
);
},
qodefAddNewRowInner: function ( holder ) {
var $addInnerButton = holder.find( '.qodef-repeater-inner-add a' ),
templateInnerName = holder.find( '.qodef-repeater-inner-wrapper-main' ).data( 'template' ),
rowInnerTemplate = wp.template( 'qodef-repeater-inner-template-' + templateInnerName );
$addInnerButton.on(
'click',
function ( e ) {
e.preventDefault();
e.stopPropagation();
var $clickedButton = $( this ),
$parentRow = $clickedButton.parents( '.qodef-repeater-fields-holder' ).first(),
parentIndex = $parentRow.data( 'index' ),
$rowInnerContent = $clickedButton.parent().parent().prev(),
lastRowInnerIndex = $parentRow.find( '.qodef-repeater-inner-fields-holder' ).length;
var $repeaterInnerRow = $(
rowInnerTemplate(
{
rowIndex: parentIndex,
rowInnerIndex: lastRowInnerIndex
}
)
);
$rowInnerContent.append( $repeaterInnerRow );
qodefRepeater.qodefInitSortableInner( holder );
qodefDependency.reinitRepeater();
}
);
},
qodefRemoveRowInner: function ( holder ) {
var repeaterInnerContent = holder.find( '.qodef-repeater-inner-wrapper-main' );
repeaterInnerContent.on(
'click',
'.qodef-clone-inner-remove',
function ( e ) {
e.preventDefault();
e.stopPropagation();
if ( ! confirm( 'Are you sure you want to remove section?' ) ) {
return;
}
var $removeButton = $( this );
var $parent = $removeButton.parents( '.qodef-repeater-inner-fields-holder' );
$parent.remove();
}
);
}
};
})( jQuery );
(function ( $ ) {
'use strict';
if ( typeof qodef !== 'object' ) {
window.qodef = {};
}
qodef.scroll = 0;
qodef.windowWidth = $( window ).width();
$( document ).ready(
function () {
qodefAdminOptionsPanel.init();
qodefInitMediaUploader.init();
qodefColorPicker.init();
qodefDatePicker.init();
qodefSelect2.init();
qodefInitIconPicker.init();
qodefPostFormatsDependency.init();
qodefSearchOptions.init();
qodefAddressFields.init();
qodefReinitRepeaterFields.init();
}
);
$( window ).on(
'load',
function () {
qodefPostFormatsDependency.init( true );
}
);
$( window ).scroll(
function () {
qodef.scroll = $( window ).scrollTop();
}
);
$( window ).resize(
function () {
qodef.windowWidth = $( window ).width();
if ( typeof qodefAdminOptionsPanel.adminPage !== 'undefined' && qodefAdminOptionsPanel.adminPage.length ) {
qodefAdminOptionsPanel.adminHeader.width( qodefAdminOptionsPanel.adminPage.width() );
}
}
);
$( document ).on(
'widget-added widget-updated',
function ( event, widget ) {
qodefInitMediaUploader.reinit( widget );
}
);
var qodefReinitRepeaterFields = {
init: function () {
$( document ).on(
'qodef_add_new_row_trigger',
function ( event, $row ) {
qodefSearchOptions.fieldHolder.push( $row );
qodefInitMediaUploader.reinit( $row );
qodefColorPicker.reinit( $row );
qodefDatePicker.reinit( $row );
qodefSelect2.reinit( $row );
qodefInitIconPicker.reinit( $row );
}
);
}
};
var qodefAdminOptionsPanel = {
init: function () {
this.adminPage = $( '.qodef-admin-page' );
if ( this.adminPage.length ) {
this.navigationInit();
this.saveOptionsInit( this.adminPage );
this.setActivePanel();
this.adminHeaderPosition();
}
},
navigationInit: function () {
var navigationItems = this.adminPage.find( '.qodef-tabs-navigation-wrapper ul li' );
navigationItems.on(
'click',
function () {
qodefSearchOptions.resetSearchView();
qodefSearchOptions.resetSearchField();
qodefAdminOptionsPanel.initNavItemClick( $( this ) );
}
);
},
initNavItemClick: function ( item ) {
var panelName = item.find( '.nav-link' ).data( 'section' );
var $navigationPanes = this.adminPage.find( '.qodef-tabs-content' );
var $activePane = $navigationPanes.find( '.tab-content:visible' );
$activePane.addClass( 'qodef-hide-pane' );
var $newPane = $navigationPanes.find( '.tab-content[data-section=' + panelName + ']' );
$newPane.removeClass( 'qodef-hide-pane' );
item.siblings( '.qodef-active' ).removeClass( 'qodef-active' );
item.addClass( 'qodef-active' );
this.setCookie(
'qodefActiveTab',
panelName
);
},
setActivePanel: function () {
var cookie = this.getCookie( 'qodefActiveTab' );
if ( cookie !== '' ) {
this.initNavItemClick( $( '.qodef-tabs-navigation-wrapper .nav-link[data-section=' + cookie + ']' ).parent() );
} else {
this.initNavItemClick( $( '.qodef-tabs-navigation-wrapper ul li:first-child' ) );
}
},
saveOptionsInit: function ( $adminPage ) {
this.optionsForm = this.adminPage.find( '#qode_framework_ajax_form' );
var buttonPressed,
$saveResetLoader = $( '.qodef-save-reset-loading' ),
$saveSuccess = $( '.qodef-save-success' );
if ( this.optionsForm.length ) {
$( '.qodef-save-reset-button' ).on(
'click',
function () {
buttonPressed = $( this ).attr( 'name' );
}
);
this.optionsForm.on(
'submit',
function ( e ) {
e.preventDefault();
e.stopPropagation();
$saveResetLoader.addClass( 'qodef-show-loader' );
$adminPage.addClass( 'qodef-save-reset-disable' );
var form = $( this ),
button_action = buttonPressed === 'qodef_save' ? 'qode_framework_action_save_options_' : 'qode_framework_action_reset_options_',
ajaxData = {
action: button_action + form.data( 'options-name' ),
options_name: form.data( 'options-name' )
};
$.ajax(
{
type: 'POST',
url: ajaxurl,
cache: ! 1,
data: $.param(
ajaxData,
! 0
) + '&' + form.serialize(), success: function () {
$saveResetLoader.removeClass( 'qodef-show-loader' );
switch (buttonPressed) {
case 'qodef_reset':
window.location.reload( true );
break;
case 'qodef_save':
$adminPage.removeClass( 'qodef-save-reset-disable' );
$saveSuccess.fadeIn( 300 );
setTimeout(
function () {
$saveSuccess.fadeOut( 200 );
},
2000
);
break;
}
}
}
);
}
);
}
},
setCookie: function ( name, value ) {
document.cookie = name + '=' + value;
},
getCookie: function ( name ) {
var newName = name + '=';
var decodedCookie = decodeURIComponent( document.cookie );
var cookieArray = decodedCookie.split( ';' );
for ( var i = 0; i < cookieArray.length; i++ ) {
var cookie = cookieArray[i];
while (cookie.charAt( 0 ) === ' ') {
cookie = cookie.substring( 1 );
}
if ( cookie.indexOf( newName ) === 0 ) {
return cookie.substring(
newName.length,
cookie.length
);
}
}
return '';
},
adminHeaderPosition: function () {
if ( typeof this.adminPage !== 'undefined' && this.adminPage.length ) {
this.adminBarHeight = $( '#wpadminbar' ).height();
this.adminHeader = $( '.qodef-admin-header' );
this.adminHeaderHeight = this.adminHeader.outerHeight( true );
this.adminHeaderTopPosition = this.adminHeader.offset().top - parseInt( this.adminBarHeight );
this.adminContent = $( '.qodef-admin-content' );
this.adminHeader.width( this.adminPage.width() );
$( window ).on(
'scroll load',
function () {
if ( qodef.scroll >= qodefAdminOptionsPanel.adminHeaderTopPosition ) {
qodefAdminOptionsPanel.adminHeader.addClass( 'qodef-fixed' ).css(
'top',
parseInt( qodefAdminOptionsPanel.adminBarHeight )
);
qodefAdminOptionsPanel.adminContent.css(
'marginTop',
qodefAdminOptionsPanel.adminHeaderHeight
);
} else {
qodefAdminOptionsPanel.adminHeader.removeClass( 'qodef-fixed' ).css(
'top',
0
);
qodefAdminOptionsPanel.adminContent.css(
'marginTop',
0
);
}
}
);
}
},
adminHeaderPositionLogic: function () {
if ( qodef.windowWidth > 768 ) {
if ( qodef.scroll > qodefAdminOptionsPanel.adminHeaderTopPosition ) {
qodefAdminOptionsPanel.adminHeader.addClass( 'qodef-fixed' );
qodefAdminOptionsPanel.adminContent.css(
'padding-top',
qodefAdminOptionsPanel.adminHeaderHeight
);
} else {
qodefAdminOptionsPanel.adminHeader.removeClass( 'qodef-fixed' );
qodefAdminOptionsPanel.adminContent.css(
'padding-top',
0
);
}
}
}
};
var qodefInitMediaUploader = {
init: function () {
this.$holder = $( '.qodef-image-uploader' );
if ( this.$holder.length ) {
this.$holder.each(
function () {
qodefInitMediaUploader.initField( $( this ) );
}
);
}
},
reinit: function ( row ) {
var $holder = $( row ).find( '.qodef-image-uploader' );
if ( $holder.length ) {
$holder.each(
function () {
qodefInitMediaUploader.initField( $( this ) );
}
);
}
},
initField: function ( thisHolder ) {
var varialbles = {
$multiple: thisHolder.data( 'multiple' ) === 'yes' && thisHolder.data( 'file' ) === 'no',
$file: thisHolder.data( 'file' ) === 'yes',
$allowed_type: thisHolder.data( 'file' ) === 'yes' ? thisHolder.data( 'allowed-type' ) : 'image',
$imageHolder: thisHolder,
mediaFrame: '',
attachment: '',
$thumbImageHolder: thisHolder.find( '.qodef-image-thumb' ),
$uploadId: thisHolder.find( '.qodef-image-upload-id' ),
$removeButton: thisHolder.find( '.qodef-image-remove-btn' )
};
if ( varialbles.$thumbImageHolder.find( 'img' ).length ) {
varialbles.$removeButton.show();
qodefInitMediaUploader.remove( varialbles.$removeButton );
}
varialbles.$imageHolder.on(
'click',
'.qodef-image-upload-btn',
function () {
//if the media frame already exists, reopen it.
if ( varialbles.mediaFrame ) {
varialbles.mediaFrame.open();
return;
}
//create the media frame
varialbles.mediaFrame = wp.media.frames.fileFrame = wp.media(
{
title: $( this ).data( 'frame-title' ),
button: {
text: $( this ).data( 'frame-button-text' )
},
library: {
type: varialbles.$allowed_type
},
multiple: varialbles.$multiple
}
);
//call right select, multiple or single or file
if ( varialbles.$file ) {
qodefInitMediaUploader.fileSelect( varialbles );
} else if ( varialbles.$multiple ) {
qodefInitMediaUploader.multipleSelect( varialbles );
} else {
qodefInitMediaUploader.singleSelect( varialbles );
}
//check selected images when wp media is opened
varialbles.mediaFrame.on(
'open',
function () {
var selection = varialbles.mediaFrame.state().get( 'selection' ),
ids = varialbles.$uploadId.val().split( ',' );
ids.forEach(
function ( id ) {
varialbles.attachment = wp.media.attachment( id );
varialbles.attachment.fetch();
selection.add( varialbles.attachment ? [varialbles.attachment] : [] );
}
);
}
);
//open media frame
varialbles.mediaFrame.open();
}
);
},
multipleSelect: function ( varialbles ) {
varialbles.mediaFrame.on(
'select',
function () {
varialbles.attachment = varialbles.mediaFrame.state().get( 'selection' ).map(
function ( attachment ) {
attachment.toJSON();
return attachment;
}
);
varialbles.$removeButton.show().trigger( 'change' );
qodefInitMediaUploader.remove( varialbles.$removeButton );
var ids = $.map(
varialbles.attachment,
function ( o ) {
if ( o.attributes.type === 'image' ) {
return o.id;
}
}
);
varialbles.$uploadId.val( ids );
varialbles.$thumbImageHolder.find( 'ul' ).empty().trigger( 'change' );
//loop through the array and add image for each attachment
for ( var i = 0; i < varialbles.attachment.length; ++i ) {
if ( varialbles.attachment[i].attributes.sizes.thumbnail !== undefined ) {
varialbles.$thumbImageHolder.find( 'ul' ).append( '<li><img src="' + varialbles.attachment[i].attributes.sizes.thumbnail.url + '" alt="thumbnail" /></li>' );
} else {
varialbles.$thumbImageHolder.find( 'ul' ).append( '<li><img src="' + varialbles.attachment[i].attributes.sizes.full.url + '" alt="thumbnail" /></li>' );
}
}
varialbles.$thumbImageHolder.show().trigger( 'change' );
}
);
},
singleSelect: function ( varialbles ) {
varialbles.mediaFrame.on(
'select',
function () {
varialbles.attachment = varialbles.mediaFrame.state().get( 'selection' ).first().toJSON();
//write to url field and img tag
if ( varialbles.attachment.hasOwnProperty( 'url' ) && varialbles.attachment.type === 'image' ) {
varialbles.$removeButton.show();
qodefInitMediaUploader.remove( varialbles.$removeButton );
varialbles.$uploadId.val( varialbles.attachment.id );
varialbles.$thumbImageHolder.empty();
if ( varialbles.attachment.hasOwnProperty( 'sizes' ) && varialbles.attachment.sizes.thumbnail ) {
varialbles.$thumbImageHolder.append( '<img class="qodef-single-image" src="' + varialbles.attachment.sizes.thumbnail.url + '" alt="thumbnail" />' );
} else {
varialbles.$thumbImageHolder.append( '<img class="qodef-single-image" src="' + varialbles.attachment.url + '" alt="thumbnail" />' );
}
varialbles.$thumbImageHolder.show().trigger( 'change' );
}
}
);
},
fileSelect: function ( varialbles ) {
varialbles.mediaFrame.on(
'select',
function () {
varialbles.attachment = varialbles.mediaFrame.state().get( 'selection' ).first().toJSON();
//write to url field and img tag
if ( varialbles.attachment.hasOwnProperty( 'url' ) && varialbles.$allowed_type.includes( varialbles.attachment.type ) ) {
varialbles.$removeButton.show();
qodefInitMediaUploader.remove( varialbles.$removeButton );
varialbles.$uploadId.val( varialbles.attachment.id );
varialbles.$thumbImageHolder.empty();
varialbles.$thumbImageHolder.append(
'' +
'<img class="qodef-file-image" src="' + varialbles.attachment.icon + '" alt="thumbnail" />' +
'<div class="qodef-file-name">' + varialbles.attachment.filename + '</div>' +
''
);
varialbles.$thumbImageHolder.show().trigger( 'change' );
}
}
);
},
remove: function ( button ) {
button.on(
'click',
function () {
//remove images and hide it's holder
button.siblings( '.qodef-image-thumb' ).hide();
button.siblings( '.qodef-image-thumb' ).find( 'img' ).attr(
'src',
''
);
button.siblings( '.qodef-image-thumb' ).find( 'li' ).remove();
//reset meta fields
button.siblings( '.qodef-image-meta-fields' ).find( 'input[type="hidden"]' ).each(
function () {
$( this ).val( '' );
}
);
button.hide().trigger( 'change' );
}
);
}
};
var qodefColorPicker = {
init: function () {
this.$holder = $( '.qodef-color-field:not(".widefat")' );
if ( this.$holder.length ) {
this.$holder.each(
function () {
qodefColorPicker.initField( $( this ) );
}
);
}
},
reinit: function ( row ) {
var $holder = $( row ).find( '.qodef-color-field:not(".widefat")' );
if ( $holder.length ) {
qodefColorPicker.initField( $holder );
}
},
initField: function ( $thisHolder ) {
$thisHolder.wpColorPicker();
}
};
var qodefDatePicker = {
init: function () {
this.$holder = $( '.qodef-datepicker' );
if ( this.$holder.length ) {
this.$holder.each(
function () {
qodefDatePicker.initField( $( this ) );
}
);
}
},
reinit: function ( row ) {
var $holder = $( row ).find( '.qodef-datepicker' );
if ( $holder.length ) {
qodefDatePicker.initField( $holder );
}
},
initField: function ( $thisHolder ) {
var dateFormat = $thisHolder.data( 'date-format' );
$thisHolder.datepicker(
{
dateFormat: dateFormat,
changeYear: true,
}
);
$( window ).on(
'keyup',
function ( e ) {
// 8 is backspace and 46 is delete
if ( $thisHolder.is( ':focus' ) && '' !== $thisHolder.val() && ( 8 === e.keyCode || 46 === e.keyCode ) ) {
$thisHolder.datepicker( 'setDate', null );
}
}
);
}
};
var qodefSelect2 = {
init: function () {
var $holder = $( 'select.qodef-select2' );
if ( $holder.length ) {
qodefSelect2.initField( $holder );
}
},
reinit: function ( row ) {
var $holder = $( row ).find( 'select.qodef-select2' );
if ( $holder.length ) {
qodefSelect2.initField( $holder );
}
},
initField: function ( $thisHolder ) {
if ( typeof $thisHolder.select2 === 'function' ) {
$thisHolder.select2(
{
width: '100%',
allowClear: false,
minimumResultsForSearch: 11
}
);
}
}
};
var qodefInitIconPicker = {
init: function () {
this.$holder = $( '.qodef-iconpicker-select:not(.qodef-select2):not(.qodef--icons-init)' );
if ( this.$holder.length ) {
this.$holder.each(
function () {
var $thisHolder = $( this );
if ( typeof $thisHolder.fontIconPicker === 'function' ) {
$thisHolder.addClass( 'qodef--icons-init' );
$thisHolder.fontIconPicker();
}
}
);
}
},
reinit: function ( row, $element ) {
var $holder = typeof $element !== 'undefined' && $element !== '' && $element !== false ? $element : $( row ).find( '.qodef-iconpicker-select:not(.qodef-select2)' );
if ( $holder.length && ! $holder.hasClass( 'qodef--icons-init' ) && typeof $holder.fontIconPicker === 'function' ) {
$holder.addClass( 'qodef--icons-init' );
$holder.fontIconPicker();
}
}
};
var qodefPostFormatsDependency = {
init: function ( onLoad ) {
if ( onLoad ) {
qodefPostFormatsDependency.initObserver();
qodefPostFormatsDependency.gutenbergEditor();
} else {
qodefPostFormatsDependency.classicEditor();
}
},
initObserver: function () {
var $holder = $( '.edit-post-sidebar' );
if ( $holder.length ) {
var mutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
// create mutation observer prototype for class changes
$.fn.attrChange = function ( attrChangeCallback ) {
if ( mutationObserver ) {
var options = {
attributes: true,
attributeFilter: ['class'],
subtree: false,
};
var observer = new mutationObserver(
function ( mutations ) {
mutations.forEach(
function ( event ) {
attrChangeCallback.call( event.target );
}
);
}
);
return this.each(
function () {
observer.observe(
this,
options
);
}
);
}
};
// append event listener
$holder.find( '.edit-post-sidebar__panel-tabs ul li:first-child button' ).attrChange(
function () {
if ( $( this ).hasClass( 'is-active' ) ) {
qodefPostFormatsDependency.gutenbergEditor();
}
}
);
}
},
classicEditor: function () {
var $holder = $( '#post-formats-select' ),
$postFormats = $holder.find( 'input[name="post_format"]' ),
$selectedFormat = $holder.find( 'input[name="post_format"]:checked' ),
selectedFormatID = $selectedFormat.attr( 'id' );
// This is temporary case - waiting ui style
$postFormats.each(
function () {
qodefPostFormatsDependency.metaBoxVisibility(
false,
$( this ).attr( 'id' )
);
}
);
qodefPostFormatsDependency.metaBoxVisibility(
true,
selectedFormatID
);
$postFormats.change(
function () {
qodefPostFormatsDependency.classicEditor();
}
);
},
gutenbergEditor: function () {
var $holder = $( '.edit-post-sidebar' );
if ( $holder.length ) {
var $postFormats = $holder.find( '.editor-post-format' ),
$selectedFormat = $postFormats.find( 'select option:selected' );
$postFormats.find( 'select option' ).each(
function () {
qodefPostFormatsDependency.metaBoxVisibility(
false,
'post_format_' + $( this ).val()
);
}
);
if ( $selectedFormat.length ) {
qodefPostFormatsDependency.metaBoxVisibility(
true,
'post_format_' + $selectedFormat.val()
);
}
$postFormats.find( 'select' ).one(
'change',
function () {
qodefPostFormatsDependency.gutenbergEditor();
}
);
}
},
metaBoxVisibility: function ( visibility, itemID ) {
if ( itemID !== '' && itemID !== undefined ) {
var postFormatName = itemID.replace(
/-/g,
'_'
);
if ( visibility ) {
$( '.qodef-section-name-qodef_' + postFormatName + '_section' ).fadeIn();
} else {
$( '.qodef-section-name-qodef_' + postFormatName + '_section' ).hide();
}
}
}
};
var qodefAddressFields = {
init: function ( trigger ) {
this.$addressHolder = $( '.qodef-address-field-holder' );
if ( this.$addressHolder.length ) {
this.$addressHolder.each(
function () {
qodefAddressFields.initMap(
$( this ),
trigger
);
}
);
}
},
initMap: function ( $holder, trigger ) {
var $reset = $holder.find( '.qodef-reset-marker' ),
$inputField = $holder.find( 'input' ),
$mapField = $holder.find( '.qodef-map-canvas' ),
countryLimit = $holder.data( 'country' ),
latFieldName = $holder.data( 'lat' ),
$latField = $( '.qodef-address-elements [name="' + latFieldName + '"]' ),
lngFieldName = $holder.data( 'lng' ),
$lngField = $( '.qodef-address-elements [name="' + lngFieldName + '"]' );
// This peace of code is required in order to re init maps for address field type when it's inside tabs layout
if ( trigger ) {
$inputField.trigger( 'geocode' );
}
if ( typeof $inputField.geocomplete === 'function' && typeof trigger === 'undefined' ) {
$inputField.geocomplete(
{
map: $mapField,
details: '.qodef-address-elements',
detailsAttribute: 'data-geo',
types: ['geocode', 'establishment'],
country: countryLimit,
markerOptions: {
draggable: true
},
}
).bind(
'geocode:result',
function () {
$reset.show();
}
);
$inputField.on(
'geocode:dragged',
function ( event, latLng ) {
$latField.val( latLng.lat() );
$lngField.val( latLng.lng() );
$reset.show();
var map = $inputField.geocomplete( 'map' );
map.panTo( latLng );
var geocoder = new google.maps.Geocoder();
geocoder.geocode(
{ 'latLng': latLng },
function ( results, status ) {
if ( status === google.maps.GeocoderStatus.OK && typeof results[0] === 'object' ) {
$inputField.val( results[0].formatted_address );
}
}
);
}
);
$inputField.on(
'focus',
function () {
var map = $inputField.geocomplete( 'map' );
google.maps.event.trigger(
map,
'resize'
);
}
);
$reset.on(
'click',
function ( e ) {
e.preventDefault();
$reset.hide();
$inputField.geocomplete( 'resetMarker' ).val( '' );
$latField.val( '' );
$lngField.val( '' );
}
);
$( window ).on(
'load',
function () {
$inputField.trigger( 'geocode' );
}
);
}
},
};
qodef.qodefAddressFields = qodefAddressFields;
var qodefSearchOptions = {
init: function () {
this.searchField = $( '.qodef-search-field' );
this.adminContent = $( '.qodef-admin-content' );
this.tabHolder = $( '.tab-content' );
this.rowHolder = $( '.qodef-row-wrapper' );
this.sectionHolder = $( '.qodef-section-wrapper' );
this.repeaterHolder = $( '.qodef-repeater-wrapper' );
this.fieldHolder = $( '.qodef-field-holder' );
if ( this.searchField.length ) {
var searchLoading = this.searchField.next( '.qodef-search-loading' ),
searchRegex,
keyPressTimeout;
this.searchField.on(
'keyup paste',
function () {
var field = $( this );
field.attr(
'autocomplete',
'off'
);
searchLoading.removeClass( 'qodef-hidden' );
clearTimeout( keyPressTimeout );
keyPressTimeout = setTimeout(
function () {
var searchTerm = field.val();
searchRegex = new RegExp(
field.val(),
'gi'
);
searchLoading.addClass( 'qodef-hidden' );
if ( searchTerm.length < 3 ) {
qodefSearchOptions.resetSearchView();
} else {
qodefSearchOptions.resetSearchView();
qodefSearchOptions.adminContent.addClass( 'qodef-apply-search' );
qodefSearchOptions.fieldHolder.each(
function () {
var thisFieldHolder = $( this );
if ( thisFieldHolder.find( '.qodef-field-desc' ).text().search( searchRegex ) !== -1 ) {
thisFieldHolder.parents( '.tab-content' ).addClass( 'qodef-search-show' );
thisFieldHolder.parents( '.qodef-section-wrapper' ).addClass( 'qodef-search-show' );
thisFieldHolder.parents( '.qodef-row-wrapper' ).addClass( 'qodef-search-show' );
thisFieldHolder.parents( '.qodef-repeater-wrapper' ).addClass( 'qodef-search-show' );
} else {
thisFieldHolder.addClass( 'qodef-search-hide' );
}
}
);
}
},
500
);
}
);
}
},
resetSearchView: function () {
this.adminContent.removeClass( 'qodef-apply-search' );
this.tabHolder.removeClass( 'qodef-search-show' );
this.rowHolder.removeClass( 'qodef-search-show' );
this.sectionHolder.removeClass( 'qodef-search-show' );
this.repeaterHolder.removeClass( 'qodef-search-show' );
this.fieldHolder.removeClass( 'qodef-search-hide' );
},
resetSearchField: function () {
this.searchField.val( '' );
}
};
})( jQuery );
(function ( $ ) {
'use strict';
$( document ).ready(
function () {
qodefWidgetFields.initColorPicker();
qodefWidgetFields.initIconPicker();
}
);
$( document ).on(
'widget-added widget-updated',
function ( event, widget ) {
qodefWidgetFields.initColorPicker( widget );
qodefWidgetFields.initDependency( widget );
qodefWidgetFields.initIconPicker( widget );
}
);
var qodefWidgetFields = {
initColorPicker: function ( $widget ) {
var $colorPickerHolder = typeof $widget !== 'undefined' ? $widget.find( '.qodef-widget-field--color' ) : $( '#widgets-right .qodef-widget-field--color' );
if ( $colorPickerHolder.length ) {
qodefWidgetFields.initPickerField(
$colorPickerHolder,
$colorPickerHolder.find( '.qodef-color-field' )
);
}
},
initPickerField: function ( $holder, $field ) {
if ( $field.length && $holder.find( '.wp-picker-container' ).length <= 0 ) {
$field.wpColorPicker(
{
change: _.throttle(
function () { // For Customizer
$( this ).trigger( 'change' );
},
3000
)
}
);
}
},
initDependency: function ( $widget ) {
var $dependency = $widget.find( '.widget-content .qodef-widget-field[data-option-name]' );
if ( $dependency.length ) {
qodef.qodefDependency.reinitWidget( $dependency );
}
},
initIconPicker: function ( $widget ) {
var $iconPickerHolder = typeof $widget !== 'undefined' ? $widget.find( '.qodef-widget-iconpicker-select:not(.qodef-select2):not(.qodef--icons-init)' ) : $( '#widgets-right .qodef-widget-iconpicker-select:not(.qodef-select2):not(.qodef--icons-init)' );
if ( $iconPickerHolder.length && typeof $iconPickerHolder.fontIconPicker === 'function' ) {
$iconPickerHolder.addClass( 'qodef--icons-init' );
$iconPickerHolder.fontIconPicker();
}
}
};
})( jQuery );